//package com.engine.salary.entity.taxagent.dto;
//
//import com.weaver.common.component.search.item.WeaSearchConditionItemType;
//import com.weaver.common.component.search.item.WeaSearchConditionOption;
//import com.weaver.hrm.salary.annotation.SalarySearchCondition;
//import com.weaver.hrm.salary.annotation.SalarySearchConditionItem;
//import com.weaver.hrm.salary.enums.SalaryUserStatusEnum;
//import com.weaver.hrm.salary.enums.salaryarchive.SalaryArchiveTaxAgentAdjustReasonEnum;
//import com.weaver.hrm.salary.util.SalaryI18nUtil;
//import com.weaver.teams.api.user.UserStatus;
//import com.weaver.teams.security.context.TenantContext;
//import com.weaver.teams.security.context.UserContext;
//import lombok.AllArgsConstructor;
//import lombok.Builder;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//
//import java.util.Arrays;
//import java.util.List;
//import java.util.stream.Collectors;
//
///**
// * @Description: 薪资档案操作记录
// * @Author: wangxiangzhong
// * @Date: 2021/11/24 17:09
// */
//@Data
//@Builder
//@NoArgsConstructor
//@AllArgsConstructor
//public class TaxAgentAdjustRecordSearchConditionDTO {
//
//    @SalarySearchCondition(
//            label = "姓名",
//            labelId = 85429,
//            needQuickSearch = true,
//            quickSearchKey = "username",
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.INPUT, name = "username"),
//            }
//    )
//    private String username;
//
//    @SalarySearchCondition(
//            label = "岗位",
//            labelId = 90633,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.BROWSER, browserType = "position", browserMultiple = true, name = "position", browserModule = "hrmsalary")
//            }
//    )
//    private String position;
//
//    @SalarySearchCondition(
//            label = "状态",
//            labelId = 91075,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.SELECT, name = "status", options = "getUserStatus()")
//            }
//    )
//    private UserStatus status;
//
//    @SalarySearchCondition(
//            label = "部门",
//            labelId = 86185,
//            needQuickSearch = true,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.BROWSER, browserType = "department", browserMultiple = true, name = "department", browserModule = "hrmsalary")
//            }
//    )
//    private String department;
//
//    @SalarySearchCondition(
//            label = "个税扣缴义务人",
//            labelId = 86184,
//            needQuickSearch = true,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.SELECT, name = "taxAgent", options = "getTaxAgentOptions()"),
//            }
//    )
//    private String taxAgent;
//
//    /**
//     * 个税扣缴义务人选项
//     */
//    private List<WeaSearchConditionOption> taxAgentOptions;
//
//    @SalarySearchCondition(
//            label = "调整原因",
//            labelId = 85431,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.SELECT, name = "adjustReason", options = "getAdjustReasonOptions()"),
//            }
//    )
//    private SalaryArchiveTaxAgentAdjustReasonEnum adjustReason;
//
//    @SalarySearchCondition(
//            label = "生效日期",
//            labelId = 85904,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.DATEPICKER, name = "effectiveTime")
//            }
//    )
//    private String effectiveTime;
//
//    @SalarySearchCondition(
//            label = "操作日期",
//            labelId = 91058,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.DATEPICKER, name = "operateTime")
//            }
//    )
//    private String operateTime;
//
//    @SalarySearchCondition(
//            label = "操作人",
//            labelId = 85435,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.BROWSER, browserType = "resource", browserMultiple = true, name = "operator", browserModule = "hrmsalary")
//            }
//    )
//    private String operator;
//
//    @SalarySearchCondition(
//            label = "备注",
//            labelId = 84961,
//            items = {
//                    @SalarySearchConditionItem(itemType = WeaSearchConditionItemType.INPUT, name = "description"),
//            }
//    )
//    private String description;
//
//    private List<WeaSearchConditionOption> getUserStatus(){
//        return Arrays.stream(SalaryUserStatusEnum.values()).map(m->new WeaSearchConditionOption(m.name(), SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), m.getLabelId(), m.getDefaultLabel()))).collect(Collectors.toList());
//    }
//
//    private List<WeaSearchConditionOption> getAdjustReasonOptions(){
//        return Arrays.stream(SalaryUserStatusEnum.values()).map(m->new WeaSearchConditionOption(m.name(), SalaryI18nUtil.getI18nLabel(TenantContext.getCurrentTenantKey(), UserContext.getCurrentEmployeeId(), m.getLabelId(), m.getDefaultLabel()))).collect(Collectors.toList());
//    }
//}
